Conventionally, IMDM systems employ a load-balancing algorithm (via a load balancer) that allocates data across different nodes in a clustered environment. However, since data is maintained in-memory, over a certain period of time there will eventually be an uneven distribution of data as data elements are deleted or expire on their own. The period of time over which the uneven distributions occur may be a few seconds or a few days.
In conventional IMDM systems, the load balancer distributes data by identifying the least-loaded node in a cluster. Succinctly put however, the load balancer does not aid in redistributing total load by reallocating data on then-existing nodes. As a result of this situation, some nodes in a cluster run slower than others as the slower running nodes are loaded with more data compared to the other nodes in the cluster.
Another issue that arises in conventional IMDM systems is that the load balancer queues requests sent to the heavily loaded nodes. This clearly impacts the quality of service, and may even result in financial penalties if service level contracts are violated. The embodiments disclosed herein resolve the issues in conventional IMDM systems using an optimized reallocation process, which provides clustered nodes with approximately equal data loads.